const { program } = require('commander');
const path = require('path');
const processFile = require('./src/fileProcessor');

// 配置命令行参数
program
  .option('-i, --input <file>', '输入文件路径', 'input.jsonl')
  .option('-o, --output <file>', '输出文件路径', 'output.jsonl')
  .option('-s, --start <number>', '起始行数', '0')
  .option('-l, --lines <number>', '处理行数', '1000')
  .parse(process.argv);

const options = program.opts();
const input = options.input;
const output = options.output;
const start = parseInt(options.start, 10) || 0;
const lines = options.lines === 'Infinity' ? Infinity : parseInt(options.lines, 10) || 1000;

console.log('翻译任务配置:');
console.log(`- 输入文件: ${input}`);
console.log(`- 输出文件: ${output}`);
console.log(`- 起始行: ${start}`);
console.log(`- 处理行数: ${lines === Infinity ? '全部' : lines}`);

// 添加错误处理
(async () => {
  try {
    console.time('处理耗时');
    const result = await processFile(input, output, start, lines);
    console.timeEnd('处理耗时');
    console.log(`翻译完成！总计处理 ${result.total} 行，成功 ${result.success} 行，失败 ${result.fail} 行`);
  } catch (err) {
    console.error('处理文件时出错:', err.message);
    process.exit(1);
  }
})();